
package com.tenentia.pcmps.swm.business;

import com.tenentia.pcmps.swm.business.implementation.BusinessLogicObjectsFactoryImpl;

/**
 * 
 * @author tEnEntia, S.L.N.E.
 * 
 */
public abstract class BusinessLogicObjectsFactory {

	private static BusinessLogicObjectsFactory staticInstance;

	public static final Integer BONUS_MANAGER = 1;
	
	public static final Integer GROUPS_MANAGER = BONUS_MANAGER + 1;

	public static final Integer INSURANCE_POLICIES_MANAGER = GROUPS_MANAGER + 1;

	public static final Integer MARKETING_PROMOTIONS_MANAGER = INSURANCE_POLICIES_MANAGER + 1;

	public static final Integer PDF_TEMPLATES_MANAGER = MARKETING_PROMOTIONS_MANAGER + 1;

	public static final Integer PERSONS_MANAGER = PDF_TEMPLATES_MANAGER + 1;
	
	public static final Integer ROLES_MANAGER = PERSONS_MANAGER + 1;
	
	public static final Integer USERS_MANAGER = ROLES_MANAGER + 1;
	
	public static final Integer STATES_MANAGER = USERS_MANAGER + 1;
	
	public static final Integer WAY_TYPES_MANAGER = STATES_MANAGER + 1;
	
	public static final Integer PARAMETER_MANAGER = WAY_TYPES_MANAGER + 1;

	static {

		staticInstance = BusinessLogicObjectsFactoryImpl.getInstance();
	}

	public BusinessLogicObjectsFactory() {

		super();
	}

	public static BusinessLogicObjectsFactory getInstance() {

		return staticInstance;
	}

	public abstract BusinessLogicObject createNewBusinessObject(Integer businessObjectType) throws BusinessLogicException;

}
